C4: verified transactional objects
نویسندگان
چکیده
Transactional objects combine the performance of classical concurrent with high-level programmability transactional memory. However, verifying correctness is tricky, requiring reasoning simultaneously about objects, which guarantee atomicity individual methods—the property known as linearizability—and software-transactional-memory libraries, user-defined sequences method calls—or serializability. We present a formal-verification framework called C4, built up from familiar notion linearizability and its compositional properties, that allows proof both kinds along composition theorems styles to prove applications or further libraries. apply in significant case study, set object out components following technique predication ; modular, separately nontransactional parts implementation. Central our approach use syntactic transformers on interaction trees —i.e., libraries transform client code enforce particular synchronization disciplines. Our studies are mechanized Coq.
منابع مشابه
Transactional Monitors for Concurrent Objects
Transactional monitors are proposed as an alternative to monitors based on mutual-exclusion synchronization for object-oriented programming languages. Transactional monitors have execution semantics similar to mutualexclusion monitors but implement monitors as lightweight transactions that can be executed concurrently (or in parallel on multiprocessors). They alleviate many of the constraints t...
متن کاملConsensus Numbers of Transactional Objects
This paper describes the ability of asynchronous shared-memory distributed systems to solve the consensus problem in a wait-free manner if processes are permitted to perform transactions on the shared memory in a single atomic action. It will be shown that transactional memory is often extremely powerful, even if weak types of shared objects are used and the transactions are short. Suppose T is...
متن کاملTowards a Verified Implementation of Software Transactional Memory
In recent years there has been much interest in the idea of concurrent programming using transactional memory, for example as provided in STM Haskell. While programmers are provided with a simple high-level model of transactions in terms of a stop-the-world semantics, the low-level implementation is rather more complex, using subtle optimisation techniques to execute multiple concurrent transac...
متن کاملA Theory of Vertically Composable Transactional Objects
We introduce a methodology and formal model that captures the essence of vertically composable transactional objects. Vertical composition adds complexity to transactional systems. As such, we aim to unearth a clean semantic model that strikes a balance between anticipating future implementation methodologies yet, nonetheless, offering a formal treatment of effective existing implementations. T...
متن کاملComposable Transactional Objects: A Position Paper
Memory transactions provide programmers with a convenient abstraction for concurrent programs: a keyword (such as atomic) designating a region of code that appears, from the perspective of concurrent threads, to execute atomically. Unfortunately, existing implementations in the form of software transactional memory (STM) are often ineffective due to their monolithic nature: every single read or...
متن کاملذخیره در منابع من
با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید
ژورنال
عنوان ژورنال: Proceedings of the ACM on programming languages
سال: 2022
ISSN: ['2475-1421']
DOI: https://doi.org/10.1145/3527324